//
//  main.m
//  ClassAndObject
//
//  Created by apple on 15/8/23.
//  Copyright (c) 2015年 戴维营. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "WangYuYan.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
//1、对象是现实世界中存在的各种事物，它们具有行为和状态两个特征；

//2、类是一类有共性事物的蓝图，是一个抽象的概念；class = interface + implementation
        
//3、所有的Cocoa和Cocaa Touch环境的Object-C的类都是从NSObject派生的；
        
        WangYuYan *str = [WangYuYan alloc];//创建对象；
        str = [str init];//初始化对象，返回对象本身；
        [str sing];
       
        WangYuYan *wangYuYan = [[WangYuYan alloc] init];//创建一个对象
        WangYuYan *wangYuYan1 = [WangYuYan new];
        
        wangYuYan.actress = @"刘亦菲";
        NSLog(@"天龙八部2003年版的王语嫣: %@",wangYuYan.actress);
        wangYuYan1.actress = @"李若彤";
        NSLog(@"天龙八部1997年版的王语嫣: %@",wangYuYan1.actress);
        
        [wangYuYan1 sing];
        [wangYuYan fight];
    
//       id是Object-C的指针类型，可以指向任意的Object-C的对象，类似于c语言中的void* 指针；
        
//       instancetype类似于id，但其职能用于Object-C方法的返回值类型，代指调用该方法的对象的类型的指针。具体的类型由编译器自行推导；
        
        //id类型；
        WangYuYan *p = [WangYuYan new];
        p.actress  = @"你大爷";
        NSLog(@"atress: %@",p.actress);
        
        id obj = p;
        obj = [NSObject new];
    }
    return 0;
}
